import java.util.Random;
import java.util.zip.DataFormatException;

import com.acme.bankapp.domain.bank.Bank;
import com.acme.bankapp.service.bank.BankDataLoaderService;
import com.acme.bankapp.service.bank.BankService;

public class BankApplication {
  public static void main(String[] args){
    String feedfilename = null;
    for(int i=0; i<args.length; i++){
      if(args[i].equals("-loadfeed")){
        if(i+1 == args.length){
          System.err.println("Опция -loadfeed должна содержать 1 аргумент (подано 0).");
          return;
        }
        feedfilename = args[i+1];
        break;
      }
    }
    if(feedfilename == null){
      System.err.println("Не указан путь к файлу, из которого загружается bank.");
      return;
    }
    Bank bank;
    try{
      bank = BankDataLoaderService.loadBankFromFile(feedfilename);
    }
    catch(DataFormatException e){
      System.out.println("Cannot create an instance of Bank; Input file is corrupted");
      System.out.println(e.getMessage());
      return;
    }
    BankService.printMaximumAmountToWithDraw(bank);
  }
  static void modifyBank(Bank bank){
    Random rand = new Random();
    for(int i=0; i<bank.getClients().size(); i++){
      for(int j=0; j<bank.getClients().get(i).getAcconts().size(); j++){
        bank.getClients().get(i).getAcconts().get(j).deposit(rand.nextInt(100));
      }
    }
  }
  static void printBalance(Bank bank){
    for(int i=0; i<bank.getClients().size(); i++){
      for(int j=0; j<bank.getClients().get(i).getAcconts().size(); j++){
        System.out.println(bank.getClients().get(i).getAcconts().get(j).getBalance());
      }
    }
  }
  static void printClientSalutations(Bank bank){
    for(int i=0; i<bank.getClients().size(); i++){
      bank.getClients().get(i).getClientSaltation();
    }
  }
}
